oracle 中字段由大改小的方法 |
您所在的位置:网站首页 › oracle date字段长度 › oracle 中字段由大改小的方法 |
需求:修改字段类型时,字段长度由大改小,字段类型由大改小,数据库不让修改,提示必须先清除数据,但数据有系统非常重要时可以采用如下方案。扩展使用:1.可用于备份重要表的数据(只需要执行1,2步骤即可) 2.可用于对物理隔离的两个生产数据库进行同步(在A数据库执行1,2步骤,在B数据库执行3,6,7步骤即可) 1.抽出表中数据select 'insert into YJ_QYMB (ID,SSFDJT) values ('''||ID||''','''||SSFDJT||''');' from YJ_QYMB;2.保存整理数据(数据被保存在c:\temp\6-data.sql中) 验证数据是否导全,没有某个表的导出数据时需要验证该表在库中是否真的没有数据, 将数据文件记为6-data.sql,以备第6步使用。 注意:对于大对象的类型可能用该方法不能导出,需要用imp语句导出整张表,如果在同一台操作可以用复制表的方法(create table table1 select ...) 3.保存及删除外键关系alter table YJ_QSHYDFL drop constraint FK_QSHYDFLZBID;alter table YJ_QSHYDLKB drop constraint FK_SSID; 4.删除数据delete from YJ_QYMB;commit;5.修改表结构alter table YJ_QYMB modify ID varchar2(100);表中列的增删该操作--增加列alter table YJ_JSSYDFLQKB add column cdate date;--删除列alter table YJ_JSSYDFLQKB drop column cdate;--修改列的类型及长度alter table YJ_QYMB modify id NVARCHAR2(36);--修改列名alter table rightcert rename column certno to rightcertno;--修改列名时遇到特殊的列名(如DATE),需要转化为字符串(如"DATE"),在字符串需要区分大小写alter table YJ_JSSFSQSHYDQKB rename column "DATE" to "CDATE"; 6.导入数据 (用2种的导出文件导入)insert into YJ_QYMB (ID,SSFDJT) values ('BD1C309866B74125863628A7F64D317E','大唐集团');insert into YJ_QYMB (ID,SSFDJT) values ('C97610A843144629AD228004D7EF4DA4','大唐国际');insert into YJ_QYMB (ID,SSFDJT) values ('760B69F7468D4A2CABA96BA63BA1640D','国电集团');insert into YJ_QYMB (ID,SSFDJT) values ('F3332D1068B74591AC20F351F3A6C9BF','华电集团');insert into YJ_QYMB (ID,SSFDJT) values ('0B0423789DC542C280DFF7C964E6D957','华润集团');insert into YJ_QYMB (ID,SSFDJT) values ('48C6F34FAFD4437DB3C57F6848095253','华能集团');insert into YJ_QYMB (ID,SSFDJT) values ('64AB69D0BC174CD9A6AFAF05CE66BCF8','中电投集团');insert into YJ_QYMB (ID,SSFDJT) values ('EB38DBF347BE45A5B6AFF63BDF2758C6','国信集团');insert into YJ_QYMB (ID,SSFDJT) values ('4A3F4CC759F147EF968FA2E118471478','国华集团');insert into YJ_QYMB (ID,SSFDJT) values ('2038E47E9BC74639A82758492F1E8992','协鑫集团');insert into YJ_QYMB (ID,SSFDJT) values ('6709E2B2C8B94FFABA09BDBDBE2D50B9','北京三吉利股份有限公司');insert into YJ_QYMB (ID,SSFDJT) values ('32C614C06CE249C6852A75E66E5A4DEF','其他');commit;7.修复外键关系alter table YJ_QSHYDFL add constraint FK_QSHYDFLZBID foreign key (ZBID) references YJ_QSHYDFLZBB (ID);alter table YJ_QSHYDLKB add constraint FK_SSID foreign key (SSID) references YJ_SMCB (ID); 问题:1.nvarchar2与varchar2的区别: VARCHAR2存放的英文字符只占一个字节,而nvarchar2依据所选的字符集,大多为两个字节。 具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则 1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。 2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。 2.大对象clob的保存:3.生成数据文件中无效信息的问题。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |